package com.luoran.bartalks.service;

import java.util.List;

import com.luoran.bartalks.action.vo.MaterialMoveVo;
import com.luoran.bartalks.entity.biz.BtContainer;
import com.luoran.bartalks.entity.biz.BtOperationLog;
import com.luoran.bartalks.entity.biz.BtPlanBiz;
import com.luoran.bartalks.entity.biz.BtPlanDetails;
import com.luoran.bartalks.entity.biz.BtPlanEntry;
import com.luoran.bartalks.entity.biz.BtProject;
import com.luoran.bartalks.entity.biz.BtProjectMember;
import com.luoran.bartalks.entity.biz.BtRuleRecord;

public interface IWorkbenchService {

	/**
	 * 根据公司ID与状态分页获取项目信息
	 * 
	 * @param CompanyId,status
	 * @return
	 */
	List<BtProject> queryProjectByCompanyIdOfWorkbench(String companyId,int startRow,int started);
	
	/**
	 * 根据项目ID获取项目成员信息
	 * 
	 * @param projectId
	 * @return
	 */
	List<BtProjectMember> getProjectMemberByProjectIdAndMembertype(String projectId,int membertype);
	
	/**
	 * 根据公司ID获取用户操作记录
	 * 
	 * @param CompanyId
	 * @return
	 */
	List<BtOperationLog> queryUserlogByCompanyId(String companyId ,int startRow);
	
	/**
	 * 根据公司ID获取货物移动信息
	 * 
	 * @param CompanyId
	 * @return
	 */
	List<MaterialMoveVo> queryMaterialMoveByProjectId(String projectId,int startRow);
	
	
	/**
	 * 根据项目ID获取计划信息
	 * 
	 * @param projectId
	 * @return
	 */
	List<BtPlanDetails> queryPlanByProjectIdOfWorkbench(String projectId,int startRow);
	
	/**
	 * 根据项目ID计划ID途经点ID查看是否有记录 
	 * 
	 * @param 
	 * @return
	 */
	List<BtPlanBiz> findArrive(String projectId,String planId,String planPositionId);
	
	/**
	 * 根据公司ID获取打尺信息
	 * 
	 * @param CompanyId
	 * @return
	 */
	List<BtRuleRecord> queryRuleRecordByProjectId(String companyId,int startRow);

	/**
	 * 根据计划id查询途经点顺序用于工作台展示
	 * 
	 * @param planId
	 * @return
	 */
	List<BtPlanEntry>  getPlanEntryByPlanIdOfWorkbench(String planId);

	/**
	 * 根据容器ID查询容器类型
	 * 
	 * @param 
	 * @return
	 */
	BtContainer findContainerTypeById(String containerId);
	
	/**
	 * 根据计划id查询异常信息
	 * 
	 * @param planId
	 * @return
	 */
	List<BtPlanEntry>  getPlanEntryException(String planId);
	
	/**
	 * 根据planid.sign获取PlanEntry
	 * 
	 * @param planId,companyId,sign
	 * @return
	 */
	BtPlanEntry getPlanEntryByPlanIdAndSign(String planId, String companyId, int sign);
}
